This invention relates generally to computerized graphics, and more particularly to applying textures to objects, such as two-dimensional and three-dimensional objects.
Computer graphics has become a burgeoning field. To add realism to objects, such as three-dimensional and two-dimensional objects, developers frequently apply textures to the objects. For example, a object that represents a tree may have applied thereto a texture that approximates and visually represents bark, so that the object appears more realistic. The process of applying textures to objects is generally referred to as texture mapping.
Texture mapping, however, currently suffers from a number of problems. The available texture is often too small to cover the entire surface of the object, such that a simple tiling of the texture onto the object introduces visually unacceptable artifacts in the form of visible repetition. Furthermore, there frequently is no natural mapping from the texture space to the object surface, consequently resulting in the texture becoming distorted, often severely, when mapped. Texture mapping is also memory intensive, both in terms of storage and bandwidth, which impedes its utility in applications where storage and bandwidth are at a premium.
To solve this problems, the patent application of which the present application is a continuation-in-part, entitled xe2x80x9cBlock Based Synthesis of Texture in Computer Rendered Imagesxe2x80x9d introduced a chaos mosaic, which is a technique for synthesizing textures with an even and visually stochastic distribution of the local features of an input texture sample. Texture synthesis utilizing the chaos mosaic results in synthesis performed orders of magnitude faster than prior art statistical sampling algorithms, and also is more memory efficient than prior art approaches.
The present invention relates to a structure that can be used to efficiently represent a virtual texture, which in one embodiment is constructed using the chaos mosaic approach of the parent application. In one embodiment, a machine-readable medium has such a structure stored thereon, and includes a predetermined sample texture, and a predetermined global structure upon which the sample texture is to be overlaid in a predetermined manner. For example, the global structure can include a tiling encoding that describes a structure of a tiling, as well as a random block sequence that describes a predetermined number of random blocks within the sample texture that are to be pasted over the tiling to actualize the virtual texture. In such an instance, the sequence also describes locations where the blocks are to be pasted over the tiling. The structure can in some embodiments be utilized in texturing, such as procedural texturing.
The virtual texture data structure of embodiments of the invention can be used for a number of different applications. For example, memory-efficient texture rendering is provided by an embodiment of the invention. The virtual texture is itself very small, and supports procedural texturing, by which textures are generated on the fly as needed. The data structure can also provide for bandwidth reduction. For example, rather than using a complete synthetic texture for an object, a virtual texture according to an embodiment of the invention that includes only a sample texture can instead be utilized, resulting in less data that needs to be transferred.
The invention includes computer-implemented methods and machine-readable media of varying scopes. Other aspects, embodiments and advantages of the invention, beyond those described here, will become apparent by reading the detailed description and with reference to the drawings.